package com.business.system.official.toursism.websitecomment.manager;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.business.system.official.toursism.websitecomment.entity.WebsiteComment;
import com.business.system.official.toursism.websitecomment.vo.WebsiteCommentBriefListVO;
import com.business.system.official.toursism.websitecomment.vo.WebsiteCommentBriefVO;
import com.business.system.official.toursism.websitecomment.vo.WebsiteCommentDetailListVO;
import com.business.system.official.toursism.websitecomment.vo.WebsiteCommentDetailVO;
import com.business.system.official.toursism.websitecomment.vo.data.WebsiteCommentBriefData;
import com.business.system.official.toursism.websitecomment.vo.data.WebsiteCommentDetailData;
import com.seed.core.exception.ManagerException;
import com.seed.core.pojo.manager.SeedSystemManager;

import java.util.List;

/**
 * @description 评论
 * @author CodeGenerator
 * @date   2025-01-25
 * @version V1.0
 */
public interface WebsiteCommentManager extends SeedSystemManager<WebsiteComment> {

    /**
     * 根据id获取详情VO data
     *
     * @param websiteCommentId 对象id
     * @return 详情VO data对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentDetailData convertDetailData(String websiteCommentId) throws ManagerException;

    /**
     * 转换为VO对象
     *
     * @param websiteComment model
     * @return VO对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentDetailData convertDetailData(WebsiteComment websiteComment) throws ManagerException;

    /**
     * 根据id获取详情VO
     *
     * @param websiteCommentId 对象id
     * @return 详情VO对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentDetailVO getDetailVO(String websiteCommentId) throws ManagerException;

    /**
     * 根据对象获取详情VO
     *
     * @param websiteComment 对象
     * @return 详情VO对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentDetailVO getDetailVO(WebsiteComment websiteComment) throws ManagerException;

    /**
     * 根据对象ids获取详情VO data list
     *
     * @param ids 对象ids
     * @return 详情VO data list对象
     * @throws ManagerException 通用层异常
     */
    List<WebsiteCommentDetailData> getConvertDetailListVOByIds(List<String> ids) throws ManagerException;

    /**
     * 根据查询条件获取详情VO data list
     *
     * @param queryWrapper 查询条件
     * @return 详情VO data list对象
     * @throws ManagerException 通用层异常
     */
    List<WebsiteCommentDetailData> listConvertDetailData(Wrapper<WebsiteComment> queryWrapper) throws ManagerException;

    /**
     * 转换为VO对象
     *
     * @param websiteCommentList model列表
     * @return VO对象列表
     * @throws ManagerException 通用层异常
     */
    List<WebsiteCommentDetailData> listConvertDetailData(List<WebsiteComment> websiteCommentList) throws ManagerException;

    /**
     * 根据对象ids获取详情VO data list
     *
     * @param ids 对象ids
     * @return 详情VO data list对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentDetailListVO getDetailListVOByIds(List<String> ids) throws ManagerException;

    /**
     * 根据查询条件获取详情VO data list
     *
     * @param queryWrapper 查询条件
     * @return 详情VO data list对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentDetailListVO getDetailListVO(Wrapper<WebsiteComment> queryWrapper) throws ManagerException;

    /**
     * 根据对象list获取详情VO data list
     *
     * @param websiteCommentList 对象list
     * @return 详情VO data list对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentDetailListVO getDetailListVO(List<WebsiteComment> websiteCommentList) throws ManagerException;

    /**
     * 根据id获取简略VO data
     *
     * @param websiteCommentId 对象id
     * @return 简略VO data对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentBriefData convertBriefData(String websiteCommentId) throws ManagerException;

    /**
     * 转换为VO对象
     *
     * @param websiteComment model
     * @return VO对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentBriefData convertBriefData(WebsiteComment websiteComment) throws ManagerException;

    /**
     * 根据id获取简略VO
     *
     * @param websiteCommentId 对象id
     * @return 简略VO对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentBriefVO getBriefVO(String websiteCommentId) throws ManagerException;

    /**
     * 根据对象获取简略VO
     *
     * @param websiteComment 对象
     * @return 简略VO对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentBriefVO getBriefVO(WebsiteComment websiteComment) throws ManagerException;

    /**
     * 根据对象ids获取简略VO data list
     *
     * @param ids 对象ids
     * @return 简略VO data list对象
     * @throws ManagerException 通用层异常
     */
    List<WebsiteCommentBriefData> listConvertBriefDataByIds(List<String> ids) throws ManagerException;

    /**
     * 根据查询条件获取简略VO data list
     *
     * @param queryWrapper 查询条件
     * @return 简略VO data list对象
     * @throws ManagerException 通用层异常
     */
    List<WebsiteCommentBriefData> listConvertBriefData(Wrapper<WebsiteComment> queryWrapper) throws ManagerException;

    /**
     * 根据对象list获取简略VO data list
     *
     * @param websiteCommentList 对象list
     * @return 简略VO data list对象
     * @throws ManagerException 通用层异常
     */
    List<WebsiteCommentBriefData> listConvertBriefData(List<WebsiteComment> websiteCommentList) throws ManagerException;

    /**
     * 根据对象ids获取简略VO data list
     *
     * @param ids 对象ids
     * @return 简略VO data list对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentBriefListVO getBriefListVOByIds(List<String> ids) throws ManagerException;

    /**
     * 根据查询条件获取简略VO data list
     *
     * @param queryWrapper 查询条件
     * @return 简略VO data list对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentBriefListVO getBriefListVO(Wrapper<WebsiteComment> queryWrapper) throws ManagerException;

    /**
     * 根据对象list获取简略VO data list
     *
     * @param websiteCommentList 对象list
     * @return 简略VO data list对象
     * @throws ManagerException 通用层异常
     */
    WebsiteCommentBriefListVO getBriefListVO(List<WebsiteComment> websiteCommentList) throws ManagerException;

}
